package com.sbm.merge.model;



/**
 *  模型切换设计
 */
public class MainTest {


    public static void main(String[] args) {

        // ...................
        // 这里可以将原来引用oldmodel的方法和参数全部改为ModelProxy引用，使用新的代理类来代理oldmodel的属性和行为
        // .............


        ModelProxy modelProxy = null;

        //在用使用的时候，我们通过开关来控制使用新的数据源，还是老的
        // 在这里，整个开关要控制住 新数据源的和老数据源的整个获取逻辑，不然在开关切换过程中，内存中会出现新老数据混合
        if ( getSwitch()) {
            NewModel newModel = new NewModel();
            modelProxy = new ModelProxy(newModel);
        }else {
            modelProxy = new ModelProxy(new OldModel());
        }


        System.out.println(modelProxy.getA());

    }


    // 判断开关是否打开
    public static boolean getSwitch() {
        return false;
    }




}
